#include <iostream>
#include <string>

using namespace std;

// 类前置声明
class my_min;
/*
在主类中 声明 函数
在朋友类中 声明 这个函数为友元
*/

class my_hour
{
private:
    int hour;
public:
    my_hour(/* args */) {}
    my_hour(int hour):hour(hour){}
    ~my_hour() {}
public:
    void show()
    {
        cout << "hour = " << this->hour << endl;
    }

    void show_H_M(my_min & m);
};

class my_min
{
private:
    int min;
public:
    my_min(/* args */) {}
    my_min(int min):min(min){}
    ~my_min() {}
public:
    void show()
    {
        cout << "min = " << this->min << endl;
    }

    // 被访问者 做友元
    friend void my_hour::show_H_M(my_min & m);
};

void my_hour::show_H_M(my_min & m)
{
    cout << this->hour << ":" << m.min << endl;
}

int main(int argc, char const *argv[])
{
    my_hour h(10);
    my_min m(20);

    h.show();
    m.show();

    h.show_H_M(m);
    
    return 0;
}
